#include <string>

struct Interaction {
    enum class Type { IntType, FloatType } type;
    union {
        int i;
        float f;
    };
    std::string name;
    // 我们可能想比较两个 Interaction 是否“相等”
    // 所以需要自定义 operator==，或者试图使用编译器自动生成的版本
};
bool operator==(const Interaction &A, const Interaction &B) {
    return (A.f == B.f) && (A.name == B.name);
}

int main() {
    Interaction I1;
    I1.name = "test1";
    I1.i = 12;
    Interaction I2;
    I1.name = "test1";
    I1.i = 12;
    bool result = (I1 == I2);
    (void)result;
}